This invention relates generally to processor cache architectures. More particularly, the present invention relates to multiprocessors that provide hardware cache coherency using shared states.
In typical computer systems, non-processor agents, such as input/output controllers and direct memory access devices, as two examples, are not able to push data directly to the local cache of a processor. However, some applications could benefit if non-processor agents were permitted to push data directly into a processor cache.
For instance, in a network packet processing system, allowing a non-processor agent to push a packet directly into a processor cache, rather than into main memory, enables the processor to read the packet directly from the local cache instead of from memory. This may be an important feature since the performance of network processors is measured by the number of packets they can process per second. In effect, the processor may process more packets because it does not need to access the information from memory, place it in a cache and then read it from the cache.
Thus, it would be desirable to enable non-processor agents to access caches in multiprocessor systems.